home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 2
/
Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso
/
Aminet
/
dev
/
gcc
/
gcc256_2.readme
< prev
next >
Wrap
Text File
|
1993-12-13
|
10KB
|
270 lines
Short: gcc-2.5.6 #2 Optimizing C/C++/Objective-C compiler (C++/ObjC)
Type: dev/gcc
Uploader: hoehle@inf-wiss.uni-konstanz.de
Author: phb@colombo.telesys-innov.fr
This directory contains the version 2.5.6 release of the GNU C
compiler. It includes all of the support for compiling C++ and
Objective C, including a run-time library for Objective C.
This is still a beta test release, but aside from the Objective C
run-time, it ought to be close to reliable.
The GNU C compiler is free software. See the file COPYING for copying
permission.
=======
WARNING
=======
This version of Amiga GCC-2.5.6 should be considered as BETA, as GCC itself
is still BETA since 2.0.
It has succesfully compiled itself 3 times (up to stage 3) and was used to
compile some utilities such as perl and C++ library.
Please test it and reports any bugs to:
Philippe BRAND
Fidonet: Ramses The Amiga Flying BBS 2:320/104.21
Email: phb@colombo.telesys-innov.fr
=======
History
=======
Gcc v2.2.2 port: Markus Wild
Gcc v2.3.3 port: Markus Wild
Gcc v2.4.5 port: Philippe Brand ,Lars Hecking, Fred Fish
Gcc v2.5.0 and up: Philippe Brand, Fred Fish
==========================
What's new in this release
==========================
-Read FSF NEWS file included.
-More internal compiler bugs fixed (see ChangeLogs in gcc sources for details),
a lot for C++ support.
-Fred Fish seems to have finally found an annoying bug which prevented
to compile a resident version of GCC, or to compile resident programs. But
don't try it anyway 'cause there's still lack of library support as for now.
-Man command now works, this one was my fault (well in fact like others ;-),
fix done by Tom Haiko.
-Infoview works also, it was an internal path problem.
-libamy.a HAS TO BE RENAMED to libamiga.a because new ld won't find libamy.a
-upgrade to new C++ library v2.5.1.
=======
Sources
=======
This archive should contain everything necessary to get you going, it doesn't
include the sources for ixemul.library (should be available RSN as a different
distribution, or ask Markus Wild), and it doesn't include full sources to gcc.
If you're interested in the sources required to rebuild gcc, get the original
GNU sources (gcc-2.5.6.tar.gz, somewhat 6MB), which should be stored on the
same ftp site you got this binary distribution from (if they're not, tell the
manager of that ftp site, as this is a requirement of the GNU Copyright
LICENSE). Then apply the gcc patch-file in src-patches/, and configure for
`amigados'. Same thing goes for libg++-2.5.1. If you want (ie. you don't have
to) get libg++-2.5.1.tar.gz (again, from the same ftp site you got this
distribution from) and apply the libg++ diff from the src-patches directory,
then configure for amigados and give it a try. Please note that you should
have at least 40MB left or your HD and 8MB of memory minimum in order to
rebuild gcc up to stage3. An accelerated Amiga is welcome, as it took me
4,5 hours to generate a single pass. So 3 passes makes 4,5 x 3 = 13,5 hours.
Sources for other tools only included as binaries are available separately
in self-contained archives (such as for example gnuinfo-920712.lha for
InfoView).
=====
Where
=====
**** GCC 2.2.2, 2.3.3, 2.4.5, 2.5.2, 2.5.3, 2.5.4 & 2.5.6 are available on:
- Aminet sites (wuarchive.wustl.edu and mirrors such as ftp.luth.se)
in /pub/aminet/dev/gcc
- Ramses The Amiga Flying BBS +33-1-60037015 HST Dual v32 terbo 4800-21600
+33-1-60037713 SupraFax v32bis 4800-14400
+33-1-60037716 Tornado v22bis 1200-2400
in Topic Development, Area Gcc
**** GNU source code is available on:
- gnu.prep.ai.mit.edu 18.71.0.38
in /pub/gnu
- Ramses The Amiga Flying BBS
in Topic AmigaUnix/Unix/Linux/NetBSD, Areas Gnu
======
Layout
======
WARNING: Locations of files have changed from 2.4.5 to conform FSF tree.
WARNING2: g++-include directory has moved to /lib/g++-include
Gcc-2.5.6 is splited into 4 archives:
gcc256-1.lha basic gcc distribution, all what you need to begin is there.
gcc256-2.lha C++, Objective-C binaries, headers and libraries.
gcc256-3.lha documentation in man & TexInfo formats, includes InfoView & man
gcc256-4.lha extra binaries in /usr/bin (UN*X utilities).
gcc25xto256.lha update from 2.5.x to 2.5.6, in case you already have 2.5.x.
Name What Where
---- ---- -----
COPYING GNU LICENSE, read!! All archives
README.2.5.6 this file All archives
NEWS_gcc-2.5.6 What's new in gcc-2.5.6 gcc256-1.lha
NEWS_libg++-2.5.1 What's new in libg++-2.5.1 gcc256-1.lha
Installer Commodore installer utility gcc256-1.lha
GCC-Install Installer script to configure gcc gcc256-1.lha
InfoView this is a viewer for .info-* files as
you find them in info/. Please read gcc256-3.lha
InfoView.info thru this README before trying to use gcc256-3.lha
it, you need to setup some things for
it to work!
envarc/ global environment variables you should
have set when using this programming gcc256-1.lha
environment
include/ non-amiga specific C/C++ headers gcc256-1.lha
os-include/ amiga specific C/C++ headers. Add gcc256-1.lha
Commodore headers!!
os-lib/ amiga specific libraries gcc256-1.lha
lib/g++-include/ C++ headers (for libg++) gcc256-2.lha
info/ manuals for the compiler, libg++, etc. gcc256-3.lha
ixpipe/ a pipe handler needed by the library gcc256-1.lha
libauto/ experimental lib to open shared libs gcc256-1.lha
at startup
dev/ empty as for now, but needed. gcc256-1.lha
libs/ ixemul.library and ixemul.trace gcc256-1.lha
rexx/ ARexx wrappers for gcc and g++ gcc256-1.lha
src-patches/ source patches gcc256-1.lha
etc/ this is /etc, and contains a config gcc256-1.lha
file for `man'
lib/ normal (not base relatives) libraries gcc256-1.lha
gcc256-2.lha
lib/gcc-lib/ home of compilers called by gcc gcc256-1.lha
gcc256-2.lha
bin/ this is /bin, and contains all gcc256-1.lha
binaries of this distribution that gcc256-2.lha
are meant to be directly invoked by gcc256-3.lha
the user (contrary to the executables gcc256-4.lha
in compilers/, that are meant to be
invoked by a driver program like gcc)
geninline/ Perl scripts to generate inline headers gcc256-1.lha
and -lamy glue
man/ this is the root for tons of man pages gcc256-3.lha
==============
Inline-Headers
==============
Since I'm not able to redistribute amiga header files, you will have to get
them directly from Commodore, unless you're an official registrated Amiga
developper. In order to generate inline-headers, follow these steps (provided
amiga headers and fd files are in os-include). You don't have to generate them
if you use OS3.1 (40.13 headers).
CLI> Assign INCLUDE: GCC:os-include
CLI> Assign FD: INCLUDE:fd
CLI> Makedir INCLUDE:inline
CLI> cd USR:bin/geninline
CLI> gen31
This will create all inline-headers. If you have 2.0 headers, use gen20
instead, if you have 3.0, use gen30, if you have 6.4, send it to me ;-)
NOTE: perl scripts do not handle correctly AmigaDOS include files, which
seems to mean they are somewhat broken. If someone could work on this...
============
Installation
============
1) If this is your first installation of GCC:
CLI> cd Disk_with_lot_space:
CLI> lha x gcc256-x.lha (where x stands for 1 through 4).
Now from the Workbench, invoke GCC-Install. This is what people wanted, e.g.
an Installer based configuration script for GCC.
Thus you only have to unpack archives and the installer script will do the
rest, creating environment variables, adding assigns to user-startup, copy
library and handler.
BTW:
Installer and Installer project icon
(c) Copyright 1991-93 Commodore-Amiga, Inc. All Rights Reserved.
Reproduced and distributed under license from Commodore.
2) If you "upgrade" your gcc environment from v2.x.x, well just erase
gcc directory then go back to step 1. Too many stuff have changed. Just
make sure you've backuped all what you've added to the GCC tree before.
Note that you MUST use ixemul.library revision 45 and NOT revision 47, has
the latter doesn't check for ENV:
=====
ARexx
=====
The provided ARexx scripts have been contributed by Loren J. Rittle.
If you like ARexx, they're an alternate way of calling gcc. They
automatically make sure you're using a large enough stack setting, and
enable you to compile C++ programs with less obscure options. This
approach is furthermore useful if you're not able to use the g++ /bin/sh
script.
===============
gcc versus gccv
===============
gccv stands for a gcc using vfork() to spawn a new process, and then calling
the new execve() function in ixemul.library to call its subcompilers. Gcc
continues to using the more system friendly RunCommand() function in
dos.library to start subcompilers. Gccv has the advantage of being able to
work with interprocess pipes, thus (provided you have the memory ;-)), you're
able to do
gccv -pipe your_program.c
causing the preprocessor (cpp), the C-compiler (cc1) and the assembler (as)
to run at the same time, passing intermediate files thru internal pipes
instead of using temporary files.
As long as you don't want that feature (ok, playing with certain make tools
also requires gccv) you're safe using gcc.
==========
stack size
==========
You need to have a 50.000 stack size in order to compile with GCC. This should
be enough for most projects. Note than while recompiling gcc with itself it
didn't take more than 71KB stack. But stack can grow due to source complexity.
Don't be afraid of it.
To use ar and/or ranlib, you should have a much larger stack, between
200.000 and 300.000, depending on library size.
===========
C++ headers
===========
Because AmigaDOS way of handling filenames, making no difference if
file has capitals or not, you'll certainly run into problems with
some headers, including String.h and normal string.h. My suggestion for
now is to add to C++ "faulty" header filename an "_" in front of it, thus
String.h would become _String.h. Sorry for inconvenience. (thanks to Dirk
Nehring for reminding me this anoying "feature").